// TODO: 待清理
import api from '@/api'
import { ALL } from '@/constant/common'
/**
 * @param dictionaryTypeCode 数据字典类型编码
 * @return 返回字典项对象数组，value 标识，label 名称
 */
export function getItemByTypeCode(dictionaryTypeCode) {
  return api.system.dictionaryType.getItem(dictionaryTypeCode)
}

/**
 * @param dictionaryTypeCode 数据字典类型编码
 * @return 返回字典项对象数组，value 标识，label 名称
 * 专门为作为查询条件的字典项添加ALL选项
 */
export function getItemByTypeCodeWithAll(dictionaryTypeCode) {
  return new Promise((resolve, reject) => {
    api.system.dictionaryType.getItemByTypeCode({ dictionaryTypeCode: dictionaryTypeCode }).then(res => {
      const allOption = [{ value: '', code: ALL.value, label: ALL.label }]
      res.data = res.data ? res.data.concat(allOption) : allOption

      resolve(res)
    }).catch(err => {
      reject(err)
    })
  })
}

/**
 * @param dictionaryTypeCode 数据字典类型编码数组
 * @return 返回字典项对象数组
 */
export function getItemsByTypeCodes(dictionaryTypeCodes) {
  return api.system.dictionaryType.getItemsByTypeCodes({ dictionaryTypeCodes: dictionaryTypeCodes })
}

/**
 * @param dictionaryTypeCode 数据字典类型编码数组
 * @return 返回字典项对象数组
 * 专门为作为查询条件的字典项添加ALL选项
 */
export function getItemsByTypeCodesWithAll(dictionaryTypeCodes) {
  return new Promise((resolve, reject) => {
    api.system.dictionaryType.getItemsByTypeCodes({ dictionaryTypeCodes: dictionaryTypeCodes }).then(res => {
      const allOption = [{ value: '', code: ALL.value, label: ALL.label }]
      if (res.data) {
        for (const prop in res.data) {
          res.data[prop] = res.data[prop] ? res.data[prop].concat(allOption) : allOption
        }
      }

      resolve(res)
    }).catch(err => {
      reject(err)
    })
  })
}
